﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;

using IEQ_Superintendencia.Domain.Entity;
using IEQ_Superintendencia.Domain.Control;

namespace IEQ_Superintendencia.User_Interface
{
    public partial class UICadIgreja : UserControl
    {
        public UICadIgreja()
        {
            InitializeComponent();
            preencheCbIgrejaCategoria();
            preencheCbIgrejaResponsavel();
            //iGREJABindingNavigator.Visible = false;
        
        }

        protected void preencheCbIgrejaCategoria()
        {
            IEQ_Superintendencia.Services.Persistence.dsIEQSuper.IGREJA_CATEGORIADataTable dtIgrejaCategoria = new IEQ_Superintendencia.Services.Persistence.dsIEQSuper.IGREJA_CATEGORIADataTable();
            IEQ_Superintendencia.Services.Persistence.dsIEQSuperTableAdapters.IGREJA_CATEGORIATableAdapter dsIgrejaCategoria = new IEQ_Superintendencia.Services.Persistence.dsIEQSuperTableAdapters.IGREJA_CATEGORIATableAdapter();

            dtIgrejaCategoria = dsIgrejaCategoria.GetData();
            cbIgrejaCategoria.DataSource = dtIgrejaCategoria;
            cbIgrejaCategoria.DisplayMember = "IGREJA_CATEGORIA_DESCRICAO";
            cbIgrejaCategoria.ValueMember = "IGREJA_CATEGORIA_ID";
            

        }

        protected void preencheCbIgrejaResponsavel()
        {
            IEQ_Superintendencia.Services.Persistence.dsIEQSuper.IGREJADataTable dtIgreja = new IEQ_Superintendencia.Services.Persistence.dsIEQSuper.IGREJADataTable();
            IEQ_Superintendencia.Services.Persistence.dsIEQSuperTableAdapters.IGREJATableAdapter taIgreja = new IEQ_Superintendencia.Services.Persistence.dsIEQSuperTableAdapters.IGREJATableAdapter();
            DataRow[] drIgrejas;
            DataSet dsIgreja = new DataSet();
            DataView dvIgrejas = new DataView();

            //cbIgrejaResponsavel.Items.Add("(Nenhuma)");

            try
            {

                taIgreja.Fill(dtIgreja);
                drIgrejas = dtIgreja.Select("IGREJA_CATEGORIA_ID = 1");
                dsIgreja.Merge(drIgrejas);
                if (dsIgreja.Tables.Count > 0)
                {
                    DataRow dr = dsIgreja.Tables[0].NewRow();
                    dr["IGREJA_ID"] = 0;
                    dr["IGREJA_CATEGORIA_ID"] = 1;
                    dr["IGREJA_NOME"] = "(Nenhuma)";
                    dsIgreja.Tables[0].Rows.InsertAt(dr, 0);
                }
                else
                {
                    dsIgreja.Tables.Add();
                    DataRow dr = dsIgreja.Tables[0].NewRow();
                    dsIgreja.Tables[0].Columns.Add("IGREJA_ID");
                    dsIgreja.Tables[0].Columns.Add("IGREJA_CATEGORIA_ID");
                    dsIgreja.Tables[0].Columns.Add("IGREJA_NOME");

                    dr["IGREJA_ID"] = 0;
                    dr["IGREJA_CATEGORIA_ID"] = 1;
                    dr["IGREJA_NOME"] = "(Nenhuma)";
                    dsIgreja.Tables[0].Rows.InsertAt(dr, 0);
                }
                
                dvIgrejas = dsIgreja.Tables[0].DefaultView;
                cbIgrejaResponsavel.DataSource = dvIgrejas;
                cbIgrejaResponsavel.DisplayMember = "IGREJA_NOME";
                cbIgrejaResponsavel.ValueMember = "IGREJA_ID";

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        protected void FactoryIgreja(ref Igreja _ig)
        {
            _ig.igreja_CNPJ = mtbCNPJ.Text;
            _ig.igreja_nome = tbNome.Text;
            _ig.igreja_categoria = cbIgrejaCategoria.SelectedIndex + 1;
            _ig.igreja_responsavel = Int32.Parse(cbIgrejaResponsavel.SelectedValue.ToString());
            _ig.igreja_endereco = tbEndereco.Text;
            _ig.igreja_endereco_num = tbNumero.Text;
            _ig.igreja_complemento = tbComplemento.Text;
            _ig.igreja_bairro = tbBairro.Text;
            _ig.igreja_cidade = tbCidade.Text;
            _ig.igreja_uf = cbUF.Text;
            _ig.igreja_cep = mtbCEP.Text;
            _ig.igreja_telefone = mtbTelefone.Text;
            _ig.igreja_email = tbEmail.Text;
            _ig.igreja_site = tbSite.Text;
            DateTime dtFundacao;
            if (DateTime.TryParse(mtbDataFundacao.Text, out dtFundacao))
                _ig.igreja_data_fundacao = dtFundacao;
            else
                MessageBox.Show("Data Fundação Inválida");

        }

        protected bool ValidaCadastroIgreja()
        {
            if (tbNome.Text.Equals(string.Empty))
                return false;

            return true;
        }

        protected void setVisibleForm(bool _visible)
        {
            tspCadastroIgreja.Visible = _visible;
            lblTextoCampoObrigatorio.Visible = _visible;
            gbxEndereco.Visible = _visible;
            gbxIdentificacao.Visible = _visible;
        }

        //private void iGREJABindingNavigatorSaveItem_Click(object sender, EventArgs e)
        //{
        //    //this.Validate();
        //    //this.iGREJABindingSource.EndEdit();
        //    //this.tableAdapterManager.UpdateAll(this.dsIEQSuper);
        //}

        private void tsbSalvar_Click(object sender, EventArgs e)
        {

            object obj = new object();
            obj = cbIgrejaResponsavel.SelectedValue;

            Igreja ig = new Igreja();
            FactoryIgreja(ref ig);
            if (ValidaCadastroIgreja())
            {
                if (ControlIgreja.Atualiza(ig))
                {
                    //Igreja_ID = ig.igreja_id;
                    //CadastraPastoresAnteriores();
                    MessageBox.Show("Cadastro realizado com sucesso!");
                }
            }
            else
                MessageBox.Show("Existem campos obrigatórios não preenchidos");

        
        }

        private void tsbCancelar_Click(object sender, EventArgs e)
        {
            tbNome.Text = string.Empty;
            tbBairro.Text = string.Empty;
            tbCidade.Text = string.Empty;
            tbComplemento.Text = string.Empty;
            tbEmail.Text = string.Empty;
            tbNumero.Text = string.Empty;
            tbEndereco.Text = string.Empty;
            tbSite.Text = string.Empty;
        }
    }
}
